#!usr/bin/env python
# -*- coding:utf-8 _*-
"""
@author:zhengxin
@file: 04_File_input_output_of_array.py
@time: 2022/10/11  14:43
# @describe: 4.4 用于数组的文件输入输出

NumPy能够读写磁盘上的文本数据或二进制数据。
这一小节只讨论NumPy的内置二进制格式，因为更多的用户会使用pandas或其它工具加载文本或表格数据（见第6章）。
"""

# np.save和np.load是读写磁盘数组数据的两个主要函数。默认情况下，数组是以未压缩的原始二进制格式保存在扩展名为.npy的文件中的：
import numpy as np

arr = np.arange(10)
np.save('some_array', arr)

# 如果文件路径末尾没有扩展名.npy，则该扩展名会被自动加上。然后就可以通过np.load读取磁盘上的数组：
print(np.load('some_array.npy'))

# 通过np.savez 可以将多个数组保存到一个未压缩文件中，将数组以关键字参数的形式传入即可：
np.savez('array_archive.npz', a=arr, b=arr)

# 加载.npz文件时，你会得到一个类似字典的对象，该对象会对各个数组进行延迟加载：
arch = np.load('array_archive.npz')
print(arch['b'])

# 如果要将数据压缩，可以使用numpy.savez_compressed：
np.savez_compressed('arrays_compressed.npz', a=arr, b=arr)
arch = np.load('arrays_compressed.npz')
print(arch['a'])










